Many word processing applications include a spell checking feature to help find spelling errors in a document. In these word processors, the user typically invokes a spell checker by selecting a spelling tool option. Typical spelling tools enable the user to choose whether a word, page or an entire document is to be checked. To check an entire document, the spelling tool then scans the document, checking every word to identify potentially misspelled words. For every potentially misspelled word, the spelling tool may prompt the user to replace, ignore, or edit the word. Typically the spell checker provides a variety of alternative spellings to choose from. This process continues until the user either expressly exits the spelling tool or the spelling tool finishes checking the document.
Spell checking according to the process outlined above is inefficient for several reasons. It is an inefficient use of processing resources because an entire scan of the document is completely re-executed every time a user invokes it. When the user initiates spell checking, the spelling tool always begins from scratch, even if portions of the document have already been checked. As a result, spell checking takes more processing time than if prior spell checking results had been stored and re-used.
In addition to consuming more processing time, spell checking also takes longer for the user to complete. The user has to initiate the spelling tool by entering a specific command. Every time the user wants to check spelling, he or she has to stop editing the document and then separately invoke the spelling tool. Once started, the user is prompted for input for every potentially misspelled word from start to finish. Even to check a single word, the user has to separately invoke the spell checker and then return to the editing process. Even for modestly sized documents, spell checking can take quite a long time when executed in this manner.
Thus, while spell checking is a helpful feature, it is not efficient in terms of processor time and required user interaction.